import pandas as pd

#文件路径
file_path = r"C:\Users\18318\Desktop\goldstock v2.csv"

#读取CSV文件
df = pd.read_csv(file_path)

#显示原始数据的前几行
print("原始数据预览：")
print(df.head())

# 缺失值处理
#检查缺失值
print("\n缺失值统计：")
print(df.isnull().sum())

#填充或删除缺失值
df.dropna(inplace=True)  # 删除缺失值
df.fillna(method='ffill', inplace=True)  # 向前填充

# 异常值检测
#根据业务逻辑定义异常值，并处理

# 数据格式统一
#将日期转换为日期类型
df['Date'] = pd.to_datetime(df['Date'], errors='coerce')  # 错误的日期格式将被设置为NaT

# 重复值检查
print("\n重复值统计：")
print(df.duplicated().sum())
df.drop_duplicates(inplace=True)  # 删除重复值

# 数据类型转换
#将数值字段转换为数值类型
df['Close/Last'] = pd.to_numeric(df['Close/Last'], errors='coerce')
df['Volume'] = pd.to_numeric(df['Volume'], errors='coerce')
df['Open'] = pd.to_numeric(df['Open'], errors='coerce')
df['High'] = pd.to_numeric(df['High'], errors='coerce')
df['Low'] = pd.to_numeric(df['Low'], errors='coerce')

# 特征工程
#从日期中提取年份和月份
df['Year'] = df['Date'].dt.year
df['Month'] = df['Date'].dt.month